#ifndef HABITACION_H
#define HABITACION_H

#include "tipos.h"
#include "lista.h"

class Habitacion
{
    public:
        Habitacion();
        Habitacion(const int n, const TipoHabitacion t, const Lista<Accesorio>& as);

        int numero() const;
        TipoHabitacion tipo() const;
        Lista<Accesorio> accesorios() const;

        bool operator==(const Habitacion& a) const;
        void mostrar(std::ostream& os) const;
		void guardar(std::ostream& os) const;
		void cargar (std::istream& is);

    private:
        int _numero;
        TipoHabitacion _tipo;
        Lista<Accesorio> _accesorios;

        enum {ENCABEZADO_ARCHIVO = 'A'};

        Accesorio getAccesorio(string acc) const;
};


std::ostream & operator<<(std::ostream & os,const Habitacion & a);
Lista<Habitacion> pretensionesDePopStar(const Lista<Accesorio>& as, const Lista<Habitacion>& hs);
#endif // HABITACION_H
